The acronym “RAID” is an umbrella term for computer data-storage schemes that can divide and replicate data among multiple hard-disk drives. Various RAID designs involve two key design goals: increased data reliability and increased input/output performance. When several physical hard-disk drives are set up to use RAID technology, the hard-disk drives are said to be in a RAID array. The RAID array distributes data across several hard-disk drives, but the array is exposed to the operating system as a single logical disk drive.
The MegaRAID® family of RAID controllers are deployed in a wide variety of RAID storage solutions. MegaRAID® is the registered trademark of LSI Corporation, a Delaware corporation having a place of business at 1110 American Parkway NE, Allentown, Pa., U.S.A. 18109-9138. These RAID controllers are configured with a bi-directional input/output (IO) port that is often coupled to 1-Wire® devices called an iButton® to selectively enable or disable various features provided on the controllers. 1-Wire® and iButton® are registered trademarks of Maxim Integrated Products, Inc., a Delaware corporation having a place of business at 120 Sand Gabriel Dr., Sunnyvale, Calif., U.S.A. 94086. The bi-directional IO port can be arranged to operate in one of three driver configurations, open-drain, totem-pole and high-impedance.
The 1-Wire® bus architecture supports multiple devices that share a single (one wire) data bus and a common electrical ground. The multiple devices are connected in an open-drain driver arrangement and are designed to operate at transistor-transistor logic (TTL) levels. Standard TTL circuits use a 5-volt power supply. A TTL input signal is defined as “low” when the signal voltage is between 0 V and 0.8 V with respect to the ground terminal, and “high” when the signal voltage is between 2.2 V and 5 V. When MegaRAID® controllers are operated with 3.3-volt power supplies, circuit elements forming the bi-directional IO port cannot supply the required current when the IO port is configured to operate in the open-drain driver configuration. The inability of the controller to supply the required current becomes particularly problematic for devices in certain functional modes. Accordingly, deployed MegaRAID® controllers cannot be reliably re-programmed.
The following analysis highlights the problem. In many programming modes, the minimum high-input voltage defined for 1-wire devices (VHmin) is 2.8V. The maximum current the controller can consume when the IO port is arranged in the open-drain driver configuration is 800 μA to 1000 μA. At 3.3 V with 10% regulation, a calculated value of the resistance of a pull-up resistor Rpup is:[(3.3*0.9)−2.8]V/1000 uA=170 ohms.During a nominal data transfer operation (i.e., a read/write operation), a maximum low-input voltage (VLmax) is 0.8V. At 3.3V with 10% regulation, a load current Iload can be calculated as:[(3.3*1.1)−0.8]V/170 ohm=16.6 mA.However, 1-Wire® devices can sink a maximum current of 4 mA, while maintaining a logical low voltage level (at 0.4V). Consequently, a minimum value for the resistance of a pull-up resistor Rpup is:[(3.3*1.1)−0.8]V/4 mA=700 ohm.Accordingly, for values of Rpup lower than 770 Ohms (assuming 10% tolerance), normal read operations cannot be guaranteed as the controller will be unable to supply the current required to maintain the signal voltage.
One well-known solution to the above described problem (not illustrated) is to add a pull-up bypass circuit that is enabled by another IO port of the controller during those times when the controller needs to supply a high current load. This well-known solution requires an additional IO port coupled to a switch (e.g., a transistor) to control a bypass resistor coupled between a power supply and Rpup.
However, many MegaRAID® controllers are presently deployed in the circuit arrangement illustrated in FIG. 1. That is, a single general-purpose IO port (GPIO) is used to communicate with an iButton® device. The conventional circuit 10 includes a power supply 15, a controller 20, a resistor network 30, and an iButton® device 40. The power supply 15 provides a voltage VDD via connection 17 to the controller 20 and a voltage Vpup via connection 19 to the resistor network 30. The power supply 15 is coupled to electrical ground by connection 13. The controller 20 is coupled to electrical ground by connection 21. The controller 20 includes a GPIO port 25, which is coupled to the resistor network 30. The resistor network 30 is coupled to the power supply via a first port 32. The resistor network 30 is further coupled to the iButton® device 40 via a second port 34 and the GPIO port 25 via a third port 36. The resistor network 30 includes a first resistor R1, having a first resistance, coupled between the first port 32 and the second port 34. The resistor network also includes a second resistor R2, having a second resistance, coupled in series with the first resistor between the first port 32 and the third port 36. As further illustrated, the iButton® device 40 is coupled between the second port 34 and electrical ground with the second port 34 coupled between the first and second resistors. In an embodiment, the resistance of R1 is approximately 750 Ohms and the resistance of R2 is approximately 100 Ohms. As is known, additional external devices can be coupled to the controller 20 via the resistor network 30 by coupling each additional device in series via the second port 34.
The iButton® device 40 is a semiconductor circuit or circuits housed in a metal enclosure. The electrical interface, as illustrated in FIG. 1, is a single, serial data line and a ground reference. Energy for operating the iButton® device 40 is taken from the serial data line (i.e., the conductor coupled to the second port 34) or from an internal battery (e.g., a lithium cell). Logical functions enabled by the semiconductor circuit(s) include but are not limited to a serial number stored in memory, password protected memory, non-volatile random access memory (RAM) or erasable programmable read only memory (EPROM), a temperature sensor, and a real time clock in combination with RAM. The iButton® device 40 communicates with a master device (e.g., the controller 20) via the serial 1-Wire® protocol, which transfers data using discrete time slots.